1. Field of the Invention
The present invention is directed to a gap detector detecting gaps between transactions transmitted by clients and processed by servers in a client/server computer architecture.
2. Description of the Related Art
In client/server computer architectures, clients transmit transactions to servers through a computer network. The servers receive and then process the transactions.
Such architectures can guarantee the delivery of the transactions to the servers, and processing of the transactions by the servers. To provide such a guarantee, the following processes are typically performed: (a) when a server receives a transaction from a client, the server transmits an acknowledgement to the client to confirm receipt of the transaction, (b) the receiving server updates a database at various synch points reached during processing of the transaction by the server, and (c) a final processing acknowledgement is transmitted from the server back to the client. These processes become significantly more complex in client/server computer architectures in which transactions are transmitted from server to server.
Unfortunately, the performance of all these processes will incur a heavy performance penalty. The performance penalty is especially severe in systems handling an extremely high volumes of transactions, unless a very heavy investment in hardware is made in ensure that bandwidth, memory, input/output (I/O) and computing power are available to handle the peak volumes.
For businesses that are unable or unwilling to make these heavy investments, the alternative has frequently been the use of batch techniques in which transactions are grouped into batches for transmission and processing. With batch techniques, it is assured that a group of transactions are processed accurately and none are lost or duplicated. However, batch techniques can result in undesirably long delays between the time a transaction is generated and the time the transaction is processed. In addition, there is an additional overhead for controlling the batches.